{ "entry-nb", 1, NULL, 'E' },
{ "pid-file", 1, NULL, 'F' },
{ "event", 1, NULL, 'e' },
+ { "master-domid", 1, NULL, 'm' },
{ "help", 0, NULL, 'H' },
{ "no-fork", 0, NULL, 'N' },
{ "priv-domid", 1, NULL, 'p' },
{ NULL, 0, NULL, 0 } };
extern void dump_conn(struct connection *conn);
+int dom0_domid = 0;
int dom0_event = 0;
int priv_domid = 0;
case 'e':
dom0_event = strtol(optarg, NULL, 10);
break;
+ case 'm':
+ dom0_domid = strtol(optarg, NULL, 10);
+ break;
case 'p':
priv_domid = strtol(optarg, NULL, 10);
break;
void dtrace_io(const struct connection *conn, const struct buffered_data *data, int out);
extern int event_fd;
+extern int dom0_domid;
extern int dom0_event;
extern int priv_domid;
void *xenbus_map(void);
void unmap_xenbus(void *interface);
+static inline int xenbus_master_domid(void) { return dom0_domid; }
+
/* Return the event channel used by xenbus. */
evtchn_port_t xenbus_evtchn(void);
void *xenbus_map(void)
{
- return xc_gnttab_map_grant_ref(*xcg_handle, 0,
+ return xc_gnttab_map_grant_ref(*xcg_handle, xenbus_master_domid(),
GNTTAB_RESERVED_XENSTORE, PROT_READ|PROT_WRITE);
}